var ordencompras = {
	init:function(){
		$('#ordencompras').jqGrid({
           url:'ordencompras/index',
           datatype:'json',
           mtype:'POST',
           colNames:['id','Numero','Proveedor','Moneda','Total s/IGV','Total c/IGV','Creado','Estado OC'],
           colModel:[
               {name:"data[Ordencompra][id]",hidden:true},
               {name:"numero",index:'Ordencompra.numero',align:"right",width:40,align:'center',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
               {name:"data[Ordencompra][proveedor_id]",index:'Proveedor.razonsocial',width:250,align:'left',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
               {name:"data[Ordencompra][moneda_id]",index:'Moneda.nombre',width:50,align:'left',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
               {name:"data[Ordencompra][prc_total_cigv]",index:'Ordencompra.prc_total_sigv',width:50,align:'right',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
			   {name:"data[Ordencompra][prc_total_cigv]",index:'Ordencompra.prc_total_cigv',width:50,align:'right',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
			   {name:"data[Ordencompra][created]",index:'Ordencompra.created',width:60,align:'center',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}},
			   {name:"data[Ordencompra][ordencompraestado_id]",index:'Ordencompraestado.descripcion',width:50,align:'left',sortable:true,editable:false,searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','bw','ew']}}               
           ],
           pager:$('#ordencompras-pager'),
           rowNum:10,
           rowList:[10,20,30],
           viewrecords:true,
           caption:'Ordencompras',
           height:'130',
           sortname: "Proveedor.razonsocial",
           editurl: 'ordencompras/index',
		   onSelectRow: function(id){
		   		if(!id){
					id=0; var nro_nt = 'Seleccione una Orden de Compra';
				}else{
					var ret = jQuery("#ordencompras").jqGrid('getRowData',id); 
					var numero = ret.numero;	
				}
				
				jQuery("#detalleordencompras")
					.jqGrid('setGridParam',{url:"detalleordencompras/index?q=Ordencompra&modelopadre_id="+id,page:1}); 
				jQuery("#detalleordencompras")
					.jqGrid('setCaption',"Detalles Orden de Compra Nro: "+numero)
					.trigger('reloadGrid'); 
				
			},
			editurl:"ordencompras/add", 
			toolbar: [true,"top"]             
       });
	   
	   $("#t_ordencompras").append("<input type='button' id='ordencompraagregar' value='Agregar OC' style='height:20px;font-size:-3'/>&nbsp"
									+"<input type='button' id='ordencompraeditar' value='Editar OC' style='height:20px;font-size:-3'/>&nbsp"); 
	   	
		$("#t_ordencompras input").click(function(){ 
			if($(this).attr('id') == 'ordencompraagregar'){
				OrdencompraIniciarDialogo();	
			}else if($(this).attr('id') == 'ordencompraeditar'){
				var ordencompra_id = jQuery("#ordencompras").jqGrid('getGridParam','selrow');
				if(ordencompra_id > 0){
					OrdencompraIniciarDialogo(ordencompra_id);
				}else{
					$.post("menus/mensaje",
						{mensaje:"Por favor seleccione una orden de compra",
							titulo:"Orden Compra"
						},function(data){
							$("body").append(data);
							$("#mensajeDialogo").dialog(
								{bgiframe:true,resizable:false,height:170,modal:true,autoOpen:true,
								 overlay:{backgroundColor:'#000',opacity:0.5},
								 buttons:{ Ok:function(){ $(this).remove(); }},
								 close:function(){ $(this).remove(); }
								}
							);
						}
					);
				}
			}
			return false;
		});
	   
	   $('#ordencompras').navGrid("#ordencompras-pager",{edit:false,add:false,del:false});
	   $("#ordencompras").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});
       jQuery("#ordencompras").jqGrid('setGridWidth',$('#RightPane').width()-50);
	   
	   	
	   
	   $("#detalleordencompras").jqGrid({
	   		height: 150, 
			url:'detalleordencompras/index?q=Ordencompra&modelopadre_id=0',
			datatype: "json", 
			colNames:['id','Codigo', 'Articulo', 'Presentacion','Cant. Pedida','Precio s/IGV','Cant. Entregada', 'Observacion'],
			colModel:[ 
				{name:'data[Detalleordencompra][id]',index:'Detalleordencompra.id', hidden:true}, 
				{name:'data[Detalleordencompra][articulocodigo]',index:'Articulo.codigo', width:40, align:"right"},
				{name:'data[Detalleordencompra][articulodescripcion]',index:'Articulo.descripcion', width:160},
				{name:'data[Detalleordencompra][articulopresentacion]',index:'Articulo.presentacion', width:40},
				{name:'data[Detalleordencompra][cantidad]',index:'Detalleordencompra.cantidad', width:50, align:"right"},
				{name:'data[Detalleordencompra][prc_total]',index:'Detalleordencompra.prc_total', width:40, align:"right"},
				{name:'data[Detalleordencompra][cantidad_nt_ing]',index:'Detalleordencompra.cantidad_nt_ing', width:50, align:"right"}, 
				{name:'data[Detalleordencompra][observacion]',index:'Detalleordencompra.observacion', width:40}
			], 
			rowNum:5, 
			rowList:[5,10,20], 
			pager: '#detalleordencompras-paper', 
			sortname: 'Articulo.descripcion', 
			viewrecords: true, 
			sortorder: "asc", 
			multiselect: false, 
			caption:"Detalle de la Orden de Compra" 
		}).navGrid('#detalleordencompras-paper',{add:false,edit:false,del:false});
		
		jQuery("#detalleordencompras").jqGrid('setGridWidth',$('#RightPane').width()-50);
		
		
		/** llama al archivo que contiene el dialog **/
		function OrdencompraIniciarDialogo(id){
			$.post("ordencompras/add/"+id,{}, 
				function(data){
			  		$("#containerordencompras").append(data);
			  		if (id > 0)  ordencompraDialog("Editar Orden Compra");	
					else  ordencompraDialog("Crear Orden Compra");
				}
			);	
		}
		
		/** Carga el formulario de dialogo de los Ordencompra **/
		function ordencompraDialog(titulo){
			$("#ordencompraDialog").attr({ title: titulo });
		
			$("#ordencompraDialog").dialog({
				bgiframe: true,
				autoOpen: true,
				height: 500,
				width: 830,
				modal: true,
				buttons: {
					Guardar: function(){
						if($("#OrdencompraActualizarForm").valid()){
							//se guarda o se actualiza la OC
							ordencompraActualizar("update");
						}	
					},
					Borrar: function(){								 	
						// DIALOGO DE CONFIRMACION 
						$.post("menus/mensaje",{
							mensaje: "Esta apunto de borrar este registro permanentemente. Desea Continuar?",
							titulo: "Borrar Orden de Compra"
						},
						function(data){
							// Se agrega el mensaje
					  		$("body").append(data);
					  		
					  		// Se activa  el dialogo
					  		$("#mensajeDialogo").dialog({
								bgiframe: true,
								resizable: false,
								height:170,
								modal: true,
								overlay: {
									backgroundColor: '#000',
									opacity: 0.5
								},
								buttons: {
									Continuar: function() {
										ordencompraActualizar("delete");
										$(this).remove();								
									},
									Cancelar: function() {
										$(this).remove();								
									}
								},
								close: function() {							
									$(this).remove();
								}
							});							
							// $(this).dialog('close');
						});					
					},
					Volver: function() { 
						$(this).remove();
					}
				},
				close: function(){
					$(this).remove();
				}
			});
			
			//valido el formulario orden compra
			var validator = $("#OrdencompraActualizarForm").validate();
			visualizarBotones();
			
			$("#ordencompraDialog").removeClass('hide');
		}
		
		/** Verificamos que botones mostrar **/
		function visualizarBotones(){
			var ordencompraestado_id = isNaN(parseFloat($('#OrdencompraOrdencompraestadoId').val()))?0:parseFloat($('#OrdencompraOrdencompraestadoId').val());
			var buttons = $("#ordencompraDialog").parent().find("div.ui-dialog-buttonset").find('button');
			switch(ordencompraestado_id){
				case 1:
				case 2:
				case 3: break;
				case 4:
				case 5:
				case 6:
					$(buttons[0]).remove();
					$(buttons[1]).remove();
					break;
			}
		}
		
		/** Creamos o Actualizamos la orden compra **/
		function ordencompraActualizar(oper){
			console.debug(oper);
			// enviamos la data para ser guardada
			$.ajax({
				type:'POST',
				url: "ordencompras/actualizar/oper:"+oper,
				data: $('#OrdencompraActualizarForm').serialize(),
				success: function(response){
					if(!response.respuesta){
						$.post("menus/mensaje",{
							mensaje:"Ha ocurrido un error y no se ha podido actualizar el registro. Intente Nuevamente!", //+response.mensaje,
							titulo:"Fallo al Actualizar"},function(data){
								$("body").append(data);
								$('#mensajeDialogo').dialog({
									autoOpen:true,
									width:200,
									resizable: false,
									modal:true,
									height:170,
									overlay:{
										backgroundColor:'#000',
										opacity:0.5
									},
									buttons:{
										Ok: function(){
											$(this).remove();
										}
									},
									close: function(){
										$(this).remove();
									}
								});
							}
						);
					}else{
						$.post("menus/mensaje",{
							mensaje:(oper === 'delete')?'EL REGISTRO FUE ELIMINADO':response.mensaje,
							titulo:"Documento Actualizado"},function(data){
								$("body").append(data);
								$('#mensajeDialogo').dialog({
									autoOpen:true,
									width:200,
									resizable: false,
									modal:true,
									height:170,
									overlay:{
										backgroundColor:'#000',
										opacity:0.5
									},
									buttons:{
										Ok: function(){
											if(isNaN(parseFloat($('#OrdencompraId').val()))){
												$("#OrdencompraId").attr('value',response.ordencompra_id);
												$("#DocumentoNumeroSerie").attr('value',response.numero);
											}
											jQuery("#ordencompras").trigger('reloadGrid');
											
											if(oper == 'delete'){
												jQuery("#detalleordencompras")
													.jqGrid('setGridParam',{url:"detalleordencompras/index?q=Ordencompra&modelopadre_id=0",page:1});
												jQuery("#detalleordencompras")
													.jqGrid('setCaption',"Invoice Detail: Seleccione una orden de compra")
													.trigger('reloadGrid');
												$('#ordencompraDialog').dialog('close');
											}else{
												jQuery("#detalleordencompras").trigger('reloadGrid');
											}
											$(this).remove();
										}
									}
								});
							}
						);
					}
				},
				dataType: 'json'
			});
			return false;
		}
	}
};